return {


  -- 这是一些依赖的说明
  "akinsho/bufferline.nvim",
  event = { "BufReadPre", "BufNewFile" },
  dependencies = { "nvim-tree/nvim-web-devicons" },



-- 一个函数
  config = function()
    local status, _ = pcall(require, "bufferline")
    if not status then
      return
    end

-- 这是环境变量
        -- 这是选择buffer的命令
    vim.api.nvim_set_keymap("n", "gb", "<Cmd>BufferLinePick<CR>", { noremap = true, silent = true })
        -- 对于关闭当前buffer的话，直接使用 :q ， 就可以了。
    vim.opt.termguicolors = true



--对插件的配置
    require("bufferline").setup({
      options = {
        number = "none",
        --number_style = "superscript" | "subscript" | "" | { "none", "subscript" }, -- buffer_id at index 1, ordinal at index 2
        --number_style =  "subscript",
        modified_icon = "✥",
     --   buffer_close_icon = "󰅖",
        buffer_close_icon = "",
        close_icon = "",
        left_trunc_marker = "",
        right_trunc_marker = "",
        max_name_length = 14,
        max_prefix_length = 13,
        tab_size = 20,
        show_buffer_close_icons = true,
        show_buffer_icons = true,
        show_tab_indicators = true,
        --diagnostics = "coc",
        diagnostics = "nvim_lsp",
        always_show_bufferline = true,
        separator_style = "thin",
        offsets = {
          {
            filetype = "NvimTree",
            text = "File Explorer",
            text_align = "center",
            padding = 1,
          },
        },
      },
    })


--    require('bufferline').setup{
--        options = {
--            mode = "buffers", -- set to "tabs" to only show tabpages instead
--            style_preset = bufferline.style_preset.default, -- or bufferline.style_preset.minimal,
--            themable = true | false, -- allows highlight groups to be overriden i.e. sets highlights as default
--            numbers = "none" | "ordinal" | "buffer_id" | "both" | function({ ordinal, id, lower, raise }): string,
--            close_command = "bdelete! %d",       -- can be a string | function, | false see "Mouse actions"
--            right_mouse_command = "bdelete! %d", -- can be a string | function | false, see "Mouse actions"
--            left_mouse_command = "buffer %d",    -- can be a string | function, | false see "Mouse actions"
--            middle_mouse_command = nil,          -- can be a string | function, | false see "Mouse actions"
--            indicator = {
--                icon = '▎', -- this should be omitted if indicator style is not 'icon'
--                style = 'icon' | 'underline' | 'none',
--            },
--            buffer_close_icon = '󰅖',
--            modified_icon = '●',
--            close_icon = '',
--            left_trunc_marker = '',
--            right_trunc_marker = '',
--            --- name_formatter can be used to change the buffer's label in the bufferline.
--            --- Please note some names can/will break the
--            --- bufferline so use this at your discretion knowing that it has
--            --- some limitations that will *NOT* be fixed.
--            name_formatter = function(buf)  -- buf contains:
--                  -- name                | str        | the basename of the active file
--                  -- path                | str        | the full path of the active file
--                  -- bufnr (buffer only) | int        | the number of the active buffer
--                  -- buffers (tabs only) | table(int) | the numbers of the buffers in the tab
--            end,
--            max_name_length = 18,
--            max_prefix_length = 15, -- prefix used when a buffer is de-duplicated
--            truncate_names = true, -- whether or not tab names should be truncated
--            tab_size = 18,
--            diagnostics = false | "nvim_lsp" | "coc",
--            diagnostics_update_in_insert = false, -- only applies to coc
--            diagnostics_update_on_event = true, -- use nvim's diagnostic handler
--            -- The diagnostics indicator can be set to nil to keep the buffer name highlight but delete the highlighting
--            diagnostics_indicator = function(count, level, diagnostics_dict, context)
--                return "("..count..")"
--            end,
--            -- NOTE: this will be called a lot so don't do any heavy processing here
--            custom_filter = function(buf_number, buf_numbers)
--                -- filter out filetypes you don't want to see
--                if vim.bo[buf_number].filetype ~= "<i-dont-want-to-see-this>" then
--                    return true
--                end
--                -- filter out by buffer name
--                if vim.fn.bufname(buf_number) ~= "<buffer-name-I-dont-want>" then
--                    return true
--                end
--                -- filter out based on arbitrary rules
--                -- e.g. filter out vim wiki buffer from tabline in your work repo
--                if vim.fn.getcwd() == "<work-repo>" and vim.bo[buf_number].filetype ~= "wiki" then
--                    return true
--                end
--                -- filter out by it's index number in list (don't show first buffer)
--                if buf_numbers[1] ~= buf_number then
--                    return true
--                end
--            end,
--            offsets = {
--                {
--                    filetype = "NvimTree",
--                    text = "File Explorer" | function ,
--                    text_align = "left" | "center" | "right"
--                    separator = true
--                }
--            },
--            color_icons = true | false, -- whether or not to add the filetype icon highlights
--            get_element_icon = function(element)
--              -- element consists of {filetype: string, path: string, extension: string, directory: string}
--              -- This can be used to change how bufferline fetches the icon
--              -- for an element e.g. a buffer or a tab.
--              -- e.g.
--              local icon, hl = require('nvim-web-devicons').get_icon_by_filetype(element.filetype, { default = false })
--              return icon, hl
--              -- or
--              local custom_map = {my_thing_ft: {icon = "my_thing_icon", hl}}
--              return custom_map[element.filetype]
--            end,
--            show_buffer_icons = true | false, -- disable filetype icons for buffers
--            show_buffer_close_icons = true | false,
--            show_close_icon = true | false,
--            show_tab_indicators = true | false,
--            show_duplicate_prefix = true | false, -- whether to show duplicate buffer prefix
--            duplicates_across_groups = true, -- whether to consider duplicate paths in different groups as duplicates
--            persist_buffer_sort = true, -- whether or not custom sorted buffers should persist
--            move_wraps_at_ends = false, -- whether or not the move command "wraps" at the first or last position
--            -- can also be a table containing 2 custom separators
--            -- [focused and unfocused]. eg: { '|', '|' }
--            separator_style = "slant" | "slope" | "thick" | "thin" | { 'any', 'any' },
--            enforce_regular_tabs = false | true,
--            always_show_bufferline = true | false,
--            auto_toggle_bufferline = true | false,
--            hover = {
--                enabled = true,
--                delay = 200,
--                reveal = {'close'}
--            },
--            sort_by = 'insert_after_current' |'insert_at_end' | 'id' | 'extension' | 'relative_directory' | 'directory' | 'tabs' | function(buffer_a, buffer_b)
--                -- add custom logic
--                return buffer_a.modified > buffer_b.modified
--            end
--        }
--    }
--

-- 这是之前的

  end,

}



